CouchDB Data Backup এবং Recovery

Database Tutorials - কাউচডিবি (CouchDB)
225
225

CouchDB হল একটি ডকুমেন্ট-ভিত্তিক NoSQL ডাটাবেস যা ডিস্ট্রিবিউটেড আর্কিটেকচারে কাজ করে। এর মধ্যে ডেটা JSON ফরম্যাটে সংরক্ষিত থাকে এবং বিভিন্ন replicationclustering প্রক্রিয়ার মাধ্যমে ডেটা পরিচালিত হয়। তবে ডেটা সুরক্ষা নিশ্চিত করার জন্য backup এবং recovery প্রক্রিয়া খুবই গুরুত্বপূর্ণ।

CouchDB তে Data Backup এবং Recovery নিশ্চিত করতে কিছু নির্দিষ্ট পদ্ধতি রয়েছে। এখানে আমরা CouchDB এর ব্যাকআপ নেওয়া এবং পুনরুদ্ধারের (recovery) পদ্ধতি বিস্তারিতভাবে আলোচনা করব।


1. CouchDB Backup:

CouchDB তে ব্যাকআপ নেওয়ার জন্য আপনি HTTP API, command-line tools, অথবা CouchDB's built-in replication সুবিধা ব্যবহার করতে পারেন। নিচে কিছু সাধারণ পদ্ধতি দেওয়া হলো:

a. CouchDB এর Entire Database Backup:

CouchDB তে পুরো ডেটাবেসের ব্যাকআপ নিতে, আপনি curl বা অন্য HTTP ক্লায়েন্ট ব্যবহার করতে পারেন। _all_docs বা _dump ফাংশন দ্বারা ডেটাবেসের ডকুমেন্টগুলি এক্সপোর্ট করা যায়।

curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > backup.json

এখানে:

  • my_database: আপনার ডেটাবেসের নাম।
  • _all_docs: এটি সব ডকুমেন্ট নিয়ে আসবে।
  • include_docs=true: সমস্ত ডকুমেন্টের বিস্তারিত তথ্য অন্তর্ভুক্ত করবে।
  • backup.json: ব্যাকআপের ফাইল যেখানে ডেটা সংরক্ষিত হবে।

এই কমান্ডটি আপনার ডেটাবেসের সমস্ত ডকুমেন্টকে JSON ফরম্যাটে ব্যাকআপ করে একটি ফাইলে সংরক্ষণ করবে।

b. CouchDB এর একটি ডকুমেন্টের ব্যাকআপ:

একটি নির্দিষ্ট ডকুমেন্টের ব্যাকআপ নিতে, আপনি GET রিকুয়েস্ট ব্যবহার করতে পারেন:

curl -X GET http://localhost:5984/my_database/document_id > document_backup.json

এখানে:

  • document_id: আপনি যে ডকুমেন্টটির ব্যাকআপ নিতে চান, তার _id
  • document_backup.json: ডকুমেন্টের ব্যাকআপ ফাইল।

c. CouchDB Snapshot Backup (for Entire Database):

CouchDB তে একটি সম্পূর্ণ ডাটাবেসের snapshot নিতে, আপনাকে CouchDB file system এর ডেটা ফোল্ডারের কপি করতে হবে। এটির জন্য, CouchDB এর ডেটাবেস ফোল্ডারের অবস্থান জানা প্রয়োজন।

cp -r /var/lib/couchdb/my_database /path/to/backup/

এখানে:

  • /var/lib/couchdb/my_database: CouchDB ডেটাবেসের অবস্থান।
  • /path/to/backup/: ব্যাকআপের জন্য নির্ধারিত ডিরেক্টরি।

এই পদ্ধতিটি তখনই কার্যকরী হবে যদি CouchDB সার্ভার বন্ধ থাকে, কারণ এই পদ্ধতিতে সম্পূর্ণ ফোল্ডারের কপি নেওয়া হয়।


2. CouchDB Recovery:

CouchDB ডেটাবেস পুনরুদ্ধার করার জন্য ব্যাকআপ নেওয়া ডেটাকে পূর্বের অবস্থানে ফিরিয়ে আনতে হবে। কিছু সাধারণ পদ্ধতি নিচে উল্লেখ করা হলো।

a. CouchDB থেকে ব্যাকআপ পুনরুদ্ধার (Using JSON Backup)

যদি আপনি JSON ফরম্যাটে ব্যাকআপ নিয়ে থাকেন, তবে POST রিকুয়েস্ট ব্যবহার করে সেই ডেটা পুনরুদ্ধার করতে পারেন। এখানে একটি সাধারণ উদাহরণ:

curl -X POST http://localhost:5984/my_database/_bulk_docs -d @backup.json

এখানে:

  • _bulk_docs: এটি একটি বিশেষ API যেটি একসাথে অনেক ডকুমেন্ট ইনসার্ট করতে ব্যবহার করা হয়।
  • @backup.json: ব্যাকআপ ফাইল যেখানে ডেটা রাখা হয়েছে।

এটি ব্যাকআপের JSON ডকুমেন্টকে my_database ডাটাবেসে পুনরুদ্ধার করবে।

b. CouchDB থেকে Snapshot Restore (for Entire Database)

যদি আপনি snapshot backup নিয়ে থাকেন, তবে সেই ফোল্ডারটি পুনরুদ্ধার করতে হবে।

cp -r /path/to/backup/my_database /var/lib/couchdb/

এখানে:

  • /path/to/backup/my_database: ব্যাকআপের ডাটাবেসের অবস্থান।
  • /var/lib/couchdb/: CouchDB এর মূল ডেটাবেস ডিরেক্টরি।

c. CouchDB Replication for Recovery

CouchDB তে replication ব্যবহারের মাধ্যমে ব্যাকআপ নেওয়া ডেটা অন্য সার্ভারে পুনরুদ্ধার করা যেতে পারে। উদাহরণস্বরূপ, এক ডাটাবেস থেকে অন্য ডাটাবেসে ডেটা কপি করা:

curl -X POST http://localhost:5984/_replicate -d '{
    "source": "source_database",
    "target": "target_database"
}'

এখানে:

  • source_database: মূল ডেটাবেস যেখান থেকে ডেটা কপি করতে হবে।
  • target_database: গন্তব্য ডেটাবেস যেখানে ডেটা পুনরুদ্ধার হবে।

এই পদ্ধতিতে, আপনি source_database থেকে target_database তে ডেটা সিঙ্ক্রোনাইজ করতে পারবেন।


3. CouchDB Data Recovery via Replication

CouchDB তে Replication হল একটি অত্যন্ত কার্যকরী পদ্ধতি যা ডেটার ব্যাকআপ এবং পুনরুদ্ধারের জন্য ব্যবহৃত হয়। CouchDB এর মাল্টি-মাস্টার রেপ্লিকেশন সক্ষমতা আপনাকে একটি সার্ভার থেকে অন্য সার্ভারে ডেটা সিঙ্ক্রোনাইজ করতে সহায়ক।

Replication Setup:

CouchDB তে ডেটা রেপ্লিকেট করার জন্য, আপনাকে source এবং target ডেটাবেসের মধ্যে সিঙ্ক্রোনাইজেশন করতে হবে।

curl -X POST http://localhost:5984/_replicate -d '{
    "source": "source_db",
    "target": "target_db"
}'

এটি source_db থেকে target_db তে ডেটা কপি করবে।


4. Automated Backup and Recovery (Using Cron Jobs)

আপনি cron jobs ব্যবহার করে CouchDB ব্যাকআপ প্রক্রিয়া স্বয়ংক্রিয় করতে পারেন। উদাহরণস্বরূপ, একটি নির্দিষ্ট সময় পরপর ব্যাকআপ নিতে আপনি cron টাস্ক সেট করতে পারেন।

Cron job for backup:

0 2 * * * curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > /path/to/backup/my_database_backup.json

এটি প্রতিদিন 2 AM তে my_database ডেটাবেসের ব্যাকআপ নিবে এবং সেটি my_database_backup.json ফাইলে সংরক্ষণ করবে।


উপসংহার

CouchDB এর Backup এবং Recovery প্রক্রিয়া অত্যন্ত গুরুত্বপূর্ণ ডেটার সুরক্ষার জন্য। এটি ডেটাবেসের পুরোপুরি ব্যাকআপ নিতে HTTP API বা file system snapshot ব্যবহার করতে পারে এবং সেই ডেটা পুনরুদ্ধার করার জন্য JSON backups, snapshot restores, অথবা replication ব্যবহৃত হতে পারে। ডেটার নিরাপত্তা এবং স্থায়িত্ব নিশ্চিত করার জন্য এই পদ্ধতিগুলি অপরিহার্য।

common.content_added_by

CouchDB Database Backup নেওয়ার পদ্ধতি

204
204

CouchDB একটি ডিস্ট্রিবিউটেড ডকুমেন্ট-ভিত্তিক NoSQL ডেটাবেস, এবং এটি বিশেষভাবে স্কেলেবিলিটি এবং ডেটার উচ্চ প্রাপ্যতা নিশ্চিত করে। তবে, CouchDB ডেটাবেসের জন্য একটি শক্তিশালী ব্যাকআপ কৌশল তৈরি করা জরুরি। ব্যাকআপের মাধ্যমে ডেটা সুরক্ষা নিশ্চিত করা যায়, যাতে কোনো ডেটা হারিয়ে গেলে তা পুনরুদ্ধার করা সম্ভব হয়।

CouchDB-তে ব্যাকআপ নেওয়ার কিছু পদ্ধতি এবং কৌশল আলোচনা করা হলো:


1. CouchDB-এর Built-in Backup Mechanism

CouchDB সরাসরি একটি ব্যাকআপ টুল সরবরাহ করে না, তবে এটি ডেটাবেসের ডাম্প (dump) তৈরি করে ব্যাকআপ নিতে সহায়ক হয়। কিছু সাধারণ পদ্ধতি দিয়ে আপনি CouchDB ডেটাবেসের ব্যাকআপ নিতে পারেন।

a. CouchDB Database Backup Using HTTP API

CouchDB-তে HTTP API ব্যবহার করে ডেটাবেসের ব্যাকআপ নেওয়া খুবই সহজ। আপনি curl বা অন্য HTTP ক্লায়েন্ট ব্যবহার করে এটি করতে পারেন।

Backup with Curl:

  1. প্রথমে, আপনি ডেটাবেসটি GET রিকুয়েস্টের মাধ্যমে ডাউনলোড করতে পারেন:
curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > backup.json

এখানে:

  • localhost:5984: CouchDB সার্ভারের URL।
  • my_database: আপনার ডেটাবেসের নাম।
  • _all_docs?include_docs=true: সমস্ত ডকুমেন্টসহ ডেটাবেসের কনটেন্ট ডাউনলোড করার জন্য।
  • backup.json: ব্যাকআপ ডেটা ফাইলের নাম যা JSON ফরম্যাটে থাকবে।

এটি আপনার ডেটাবেসের সমস্ত ডকুমেন্ট JSON ফাইল হিসেবে ব্যাকআপ করবে। তবে, যদি আপনার ডেটাবেসে বড় ডেটা থাকে, তবে এটি কিছু সময় নিতে পারে।

b. Using couchdb-dump for Backup

CouchDB-এর ব্যাকআপ নিতে আরও একটি কার্যকরী উপায় হল couchdb-dump ব্যবহার করা। এটি একটি তৃতীয়-পক্ষের টুল যা ডেটাবেসের ব্যাকআপ নিতে এবং পুনরুদ্ধার করতে সাহায্য করে।

couchdb-dump my_database > my_database_backup.json

এখানে:

  • my_database: আপনার CouchDB ডেটাবেসের নাম।
  • my_database_backup.json: ব্যাকআপের ফাইল নাম যা JSON ফরম্যাটে থাকবে।

ব্যাকআপ তৈরি হওয়ার পর, আপনি ফাইলটি নিরাপদে সংরক্ষণ করতে পারেন। পরে এই ফাইলটি ব্যবহার করে আপনি ডেটাবেস পুনরুদ্ধার করতে পারবেন।


2. Manual Backup (CouchDB Data Directory Copying)

CouchDB একটি data directory তে সমস্ত ডেটা সংরক্ষণ করে, যার মধ্যে সমস্ত ডেটাবেসের ডকুমেন্ট এবং সংশ্লিষ্ট ফাইল থাকে। আপনি এই ডিরেক্টরি থেকে ডিরেক্ট ফাইল কপি করে ব্যাকআপ নিতে পারেন।

Steps:

  1. CouchDB সার্ভারটি বন্ধ করুন:
sudo systemctl stop couchdb
  1. CouchDB Data Directory কপি করুন:
sudo cp -r /var/lib/couchdb /path/to/backup/location

এখানে:

  • /var/lib/couchdb: এটি CouchDB এর ডেটা সংরক্ষণের ডিরেক্টরি।
  • /path/to/backup/location: ব্যাকআপের জন্য নতুন অবস্থান যেখানে আপনি কপি করতে চান।
  1. CouchDB সার্ভার পুনরায় চালু করুন:
sudo systemctl start couchdb

এই পদ্ধতিতে, আপনি CouchDB এর সমস্ত ডেটা, কনফিগারেশন, এবং লগ ফাইলগুলি একটি নিরাপদ স্থানে ব্যাকআপ হিসেবে সংরক্ষণ করতে পারবেন।


3. Automated Backup with Cron Jobs

CouchDB ব্যাকআপ প্রক্রিয়া স্বয়ংক্রিয় করার জন্য cron jobs ব্যবহার করা যেতে পারে। আপনি একটি নির্দিষ্ট সময়সূচী অনুসারে CouchDB ব্যাকআপ নিতে পারেন।

Steps:

  1. Cron Job তৈরি করুন: আপনি একটি bash script তৈরি করতে পারেন যা প্রতিদিন একটি ব্যাকআপ ফাইল তৈরি করবে।

    উদাহরণ হিসেবে, একটি backup.sh স্ক্রিপ্ট:

#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > /path/to/backup/location/my_database_backup_$DATE.json
  1. Cron Job সেটআপ: আপনি cron job ব্যবহার করে প্রতিদিন নির্দিষ্ট সময়ে এই স্ক্রিপ্টটি চালাতে পারেন।

    crontab -e
    

    তারপর ক্রন জবটি এভাবে সেট করুন:

0 2 * * * /path/to/backup.sh

এটি প্রতি দিন রাত ২ টায় ব্যাকআপ তৈরি করবে।


4. Restoring a CouchDB Database from Backup

CouchDB ডেটাবেসের ব্যাকআপ পুনরুদ্ধারের প্রক্রিয়া সহজ এবং দ্রুত। curl বা couchdb-dump ব্যবহার করে ব্যাকআপ পুনরুদ্ধার করা যেতে পারে।

Restore Using Curl:

  1. JSON ব্যাকআপ ফাইল থেকে ডেটাবেস পুনরুদ্ধার:
curl -X POST http://localhost:5984/my_database/_bulk_docs -d @my_database_backup.json

এখানে:

  • my_database_backup.json: আপনার ব্যাকআপ ফাইল।
  • _bulk_docs: CouchDB এর API ব্যবহার করে একসাথে অনেক ডকুমেন্ট পুনরুদ্ধার করা হয়।

Restore Using couchdb-dump:

  1. ডাম্প ফাইল ব্যবহার করে পুনরুদ্ধার:
couchdb-dump restore my_database_backup.json my_database

এটি আপনার ব্যাকআপ ফাইল থেকে ডেটাবেস পুনরুদ্ধার করবে।


5. Cloud Backup Solutions

CouchDB ক্লাউডে ডেপ্লয় করলে, আপনি সহজে ক্লাউড ব্যাকআপ সিস্টেম ব্যবহার করতে পারেন যেমন AWS S3, Google Cloud Storage, অথবা Azure Blob Storage

AWS S3 ব্যাকআপ উদাহরণ:

aws s3 cp /path/to/backup/my_database_backup.json s3://your-bucket-name/

এটি আপনার ব্যাকআপ ফাইল S3 বালতিতে আপলোড করবে, যেখানে এটি নিরাপদভাবে সংরক্ষিত থাকবে।


উপসংহার

CouchDB Database Backup নেওয়া ডেটার সুরক্ষার জন্য অত্যন্ত গুরুত্বপূর্ণ। CouchDB-তে ব্যাকআপ নেওয়ার কয়েকটি পদ্ধতি রয়েছে, যেমন HTTP API ব্যবহার করে JSON ডকুমেন্ট ব্যাকআপ নেওয়া, ডেটা ডিরেক্টরি কপি করা, এবং স্বয়ংক্রিয় ব্যাকআপের জন্য cron jobs ব্যবহার করা। আপনি ব্যাকআপের জন্য ক্লাউড স্টোরেজও ব্যবহার করতে পারেন, যা আপনার ডেটাকে আরও সুরক্ষিত এবং সহজে অ্যাক্সেসযোগ্য করে তোলে।

common.content_added_by

Automated Backup কনফিগারেশন

163
163

CouchDB তে ডেটাবেসের ব্যাকআপ নেওয়া অত্যন্ত গুরুত্বপূর্ণ, বিশেষত যখন আপনি বড় পরিসরের ডেটাবেস পরিচালনা করছেন। Automated Backup এর মাধ্যমে, আপনি নির্দিষ্ট সময়ে বা নির্দিষ্ট ঘটনায় ডেটাবেসের ব্যাকআপ গ্রহণ করতে পারেন, যা ডেটা হারানোর ঝুঁকি কমিয়ে দেয়। এখানে CouchDB-তে Database Backup এবং Automated Backup Configuration এর বিস্তারিত পদ্ধতি আলোচনা করা হলো।


1. CouchDB Database Backup নেওয়া

CouchDB তে ব্যাকআপ নেওয়া সাধারণত দুটি পদ্ধতিতে করা যায়:

  1. Manual Backup (হাতে ব্যাকআপ):
    • সাধারণত couchdb-dump বা curl ব্যবহার করে ডেটাবেসের একটি কপি তৈরি করা হয়।
  2. Automated Backup (স্বয়ংক্রিয় ব্যাকআপ):
    • এই পদ্ধতিতে cron jobs বা shell scripts ব্যবহার করে নিয়মিত ব্যাকআপ নেওয়া হয়।

2. Manual Database Backup (হাতে ব্যাকআপ)

CouchDB এর ডেটাবেস ব্যাকআপ নিতে, আপনি curl বা couchdb-dump কমান্ড ব্যবহার করতে পারেন। নিচে curl ব্যবহার করে ব্যাকআপ নেওয়ার একটি উদাহরণ দেওয়া হলো:

ব্যাকআপ নেওয়ার কমান্ড (curl):

curl -X GET http://localhost:5984/mydatabase/_all_docs?include_docs=true > mydatabase_backup.json

এখানে:

  • localhost:5984: CouchDB এর লোকাল হোস্ট এবং পোর্ট।
  • mydatabase: আপনার CouchDB ডাটাবেসের নাম।
  • _all_docs?include_docs=true: সমস্ত ডকুমেন্ট এবং তাদের বিস্তারিত নিয়ে আসে।
  • > mydatabase_backup.json: ব্যাকআপ ফাইলটি mydatabase_backup.json নামে সংরক্ষণ করবে।

এটি একটি JSON ফাইল হিসেবে ডেটাবেসের সমস্ত ডকুমেন্টের ব্যাকআপ তৈরি করবে।

Database Restore (ব্যাকআপ রিস্টোর):

ব্যাকআপ নেওয়ার পর, আপনি পরবর্তীতে এই ব্যাকআপ ফাইলটি পুনরুদ্ধার (restore) করতে পারেন। নিচে ব্যাকআপ রিস্টোর করার একটি উদাহরণ দেওয়া হলো:

curl -X POST http://localhost:5984/mydatabase/_bulk_docs -H "Content-Type: application/json" -d @mydatabase_backup.json

এখানে:

  • _bulk_docs: একসাথে একাধিক ডকুমেন্ট পুনরুদ্ধার করার জন্য ব্যবহার করা হয়।

3. Automated Backup কনফিগারেশন

Automated Backup কনফিগার করার জন্য, আপনি cron jobs এবং bash scripts ব্যবহার করতে পারেন। cron jobs আপনাকে একটি নির্দিষ্ট সময়ে বা নির্দিষ্ট সময়সীমার মধ্যে ব্যাকআপ নেওয়ার সুযোগ দেয়। নিচে cron job ব্যবহার করে স্বয়ংক্রিয়ভাবে ব্যাকআপ কনফিগার করার পদ্ধতি দেওয়া হলো।

Step 1: Bash Script তৈরি করা

প্রথমে একটি bash script তৈরি করুন যা CouchDB ডেটাবেসের ব্যাকআপ নিবে। উদাহরণস্বরূপ:

#!/bin/bash

# ব্যাকআপ নেওয়ার সময়
DATE=$(date +\%Y-\%m-\%d_\%H-\%M-\%S)

# CouchDB ডেটাবেসের নাম
DATABASE=mydatabase

# ব্যাকআপ ফাইলের নাম
BACKUP_DIR="/backups"

# ব্যাকআপ নেওয়া
curl -X GET "http://localhost:5984/$DATABASE/_all_docs?include_docs=true" > "$BACKUP_DIR/$DATABASE-backup-$DATE.json"

এখানে:

  • DATE: বর্তমান সময় অনুযায়ী ব্যাকআপ ফাইলের নাম গঠন করা হয়।
  • DATABASE: ব্যাকআপ নিতে চাইলে ডেটাবেসের নাম দিন।
  • BACKUP_DIR: যেখানে ব্যাকআপ ফাইলটি সংরক্ষণ হবে।

এটি একটি JSON ফাইল হিসেবে ডেটাবেসের ব্যাকআপ তৈরি করবে।

Step 2: Bash Script কে Executable করা

আপনি যদি তৈরি করা bash script কে চালাতে চান, তবে প্রথমে এটি executable করতে হবে:

chmod +x /path/to/your/backup-script.sh

Step 3: Cron Job কনফিগার করা

এখন আপনি cron job ব্যবহার করে এই স্ক্রিপ্টটিকে স্বয়ংক্রিয়ভাবে চালানোর জন্য নির্ধারণ করতে পারেন। নিচে cron job কনফিগার করার একটি উদাহরণ:

crontab -e

এটি আপনার cron job ফাইলটি খুলবে। তারপর, নিম্নলিখিত লাইনের মতো একটি cron job লিখুন, যা প্রতি দিন রাত ১২টায় ব্যাকআপ নেবে:

0 0 * * * /path/to/your/backup-script.sh

এখানে:

  • **0 0 * * ***: প্রতিদিন রাত ১২টায় এই স্ক্রিপ্টটি চালাবে।
  • /path/to/your/backup-script.sh: আপনার স্ক্রিপ্টের পূর্ণ পাথ।

Step 4: Cron Job পরীক্ষা করা

Cron job সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করতে আপনি cron logs দেখতে পারেন। এটি দেখতে:

cat /var/log/cron

এটি দেখাবে আপনার cron job কখন এবং কি সময় চলেছে।


4. Backup Storage এবং Management

  • Cloud Storage: আপনি ব্যাকআপ ফাইলগুলি ক্লাউড স্টোরেজে যেমন Amazon S3, Google Cloud Storage, বা Azure Blob Storage তে আপলোড করতে পারেন।
  • Encrypted Backups: সুরক্ষিত রাখতে আপনি ব্যাকআপ ফাইলটি GPG encryption বা অন্য কোনো এনক্রিপশন পদ্ধতি ব্যবহার করে এনক্রিপ্ট করতে পারেন।
  • Backup Rotation: আপনি logrotate বা অন্য কোন পদ্ধতি ব্যবহার করে পুরনো ব্যাকআপগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলতে পারেন, যাতে ডেটা সংরক্ষণের জন্য পর্যাপ্ত জায়গা থাকে।

5. CouchDB তে Automated Backup সঠিকভাবে কনফিগার করার জন্য কিছু টিপস:

  • ফাইলের জায়গা: ব্যাকআপ ফাইলগুলি যথেষ্ট জায়গা নিয়ে রাখা উচিত। ব্যাকআপ রাখা সিস্টেমে disk space পর্যাপ্ত থাকতে হবে।
  • ব্যাকআপ ফাইলের নামকরণ: প্রতিটি ব্যাকআপের নামটি তার ডেট এবং সময় অন্তর্ভুক্ত করা উচিত, যাতে সহজে আলাদা করা যায়।
  • ব্যাকআপের পরীক্ষণ: সময়ে সময়ে ব্যাকআপগুলি পরীক্ষা করুন যে সেগুলি সঠিকভাবে পুনরুদ্ধার করা যাচ্ছে কিনা।

উপসংহার

CouchDB-তে Automated Backup কনফিগারেশন আপনার ডেটাবেসের নিরাপত্তা নিশ্চিত করতে সহায়ক। নিয়মিত ব্যাকআপ নেওয়া ডেটার সুরক্ষার জন্য অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি বড় ডিস্ট্রিবিউটেড ডেটাবেস পরিচালনা করছেন। cron jobs এবং bash scripts ব্যবহার করে আপনি সহজেই আপনার CouchDB ডেটাবেসের ব্যাকআপ স্বয়ংক্রিয় করতে পারেন এবং ক্লাউড স্টোরেজের মাধ্যমে সেগুলি নিরাপদে সংরক্ষণ করতে পারেন।

common.content_added_by

Database Recovery

224
224

CouchDB একটি ডকুমেন্ট-ভিত্তিক ডাটাবেস সিস্টেম, এবং এর ডেটা সাধারণত JSON ফরম্যাটে সংরক্ষিত থাকে। ডেটাবেস ব্যাকআপ নেওয়া অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যদি আপনার সিস্টেমে কোনো সমস্যা হয় বা ডেটা হারানোর ঝুঁকি থাকে। CouchDB এ ব্যাকআপ এবং রিকভারি প্রক্রিয়া দুটি প্রধান ধাপে বিভক্ত: ব্যাকআপ কনফিগারেশন এবং ব্যাকআপ পুনরুদ্ধার (recovery)।

1. CouchDB Database Backup নেওয়ার পদ্ধতি

CouchDB-এ ব্যাকআপ নেওয়ার জন্য বেশ কয়েকটি পদ্ধতি রয়েছে। এর মধ্যে একটি অন্যতম সহজ পদ্ধতি হল CouchDB database dump ব্যবহার করা। এছাড়াও, replication এবং snapshot ব্যবহার করেও ব্যাকআপ নেওয়া যেতে পারে।

a. CouchDB Database Dump (Backup)

CouchDB-এর couchdb-dump বা curl কমান্ড ব্যবহার করে আপনি সহজেই ব্যাকআপ নিতে পারেন।

Backup using curl command

CouchDB-এর ডেটাবেসের ব্যাকআপ নেওয়ার জন্য curl ব্যবহার করা যেতে পারে। এটি GET রিকুয়েস্ট পাঠিয়ে ডেটাবেসের সমস্ত ডেটা JSON ফরম্যাটে আউটপুট হিসেবে গ্রহণ করে।

ব্যাকআপ কমান্ড (সার্ভারে):

curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > my_database_backup.json
  • localhost:5984: এটি CouchDB সার্ভারের হোস্ট এবং পোর্ট।
  • my_database: এটি আপনার ডেটাবেসের নাম।
  • _all_docs?include_docs=true: এটি সমস্ত ডকুমেন্ট এবং তাদের সম্পূর্ণ ডেটা বের করবে।
  • my_database_backup.json: এটি ব্যাকআপ ফাইলের নাম, যা JSON ফরম্যাটে সংরক্ষিত হবে।
Backup using couchdb-dump

couchdb-dump একটি টুল যা সম্পূর্ণ ডেটাবেসের ব্যাকআপ তৈরি করতে ব্যবহৃত হয়।

ব্যাকআপ কমান্ড (কমান্ড লাইন):

couchdb-dump /path/to/backup/

এটি একটি নির্দিষ্ট path-এ পুরো ডেটাবেসের ব্যাকআপ তৈরি করবে।


2. Automated Backup কনফিগারেশন

CouchDB-তে ব্যাকআপ অটোমেটিক্যালি নেওয়ার জন্য, আপনি কিছু স্ক্রিপ্ট ব্যবহার করতে পারেন যা নির্দিষ্ট সময় অন্তর ব্যাকআপ তৈরি করবে। এটি cron jobs বা systemd timers ব্যবহার করে করা যেতে পারে।

Cron Job ব্যবহার করে Automated Backup

আপনি cron job ব্যবহার করে একটি নির্দিষ্ট সময়ে ব্যাকআপ নিতে পারেন। উদাহরণস্বরূপ, প্রতি রাতে ১টা বাজে ব্যাকআপ নেওয়ার জন্য cron job কনফিগার করতে হবে।

ক্রন কনফিগারেশন (cron job):

  1. ক্রন ট্যাব এডিট করুন:

    crontab -e
    
  2. ব্যাকআপের জন্য ক্রন এন্ট্রি যোগ করুন:

    0 1 * * * curl -X GET http://localhost:5984/my_database/_all_docs?include_docs=true > /path/to/backup/my_database_backup_$(date +\%F).json
    

এখানে:

  • **0 1 * * ***: প্রতি রাত ১টার সময় কাজ করবে।
  • curl: ব্যাকআপ কমান্ড।
  • /path/to/backup/: ব্যাকআপ ফাইলের সংরক্ষণের লোকেশন।

এটি প্রতিদিন ১টার সময় my_database ডেটাবেসের ব্যাকআপ তৈরি করবে এবং সেটি বর্তমান তারিখের সাথে ফাইলের নাম দেবে।


3. Database Recovery

CouchDB থেকে ব্যাকআপ পুনরুদ্ধার করার জন্য সাধারণত restore প্রক্রিয়া অনুসরণ করা হয়, যেখানে একটি ব্যাকআপ ফাইল থেকে ডেটাবেস পুনঃপ্রতিষ্ঠিত করা হয়।

Backup থেকে Restore

CouchDB ব্যাকআপ থেকে ডেটাবেস পুনরুদ্ধার করতে curl অথবা couchdb_restore টুল ব্যবহার করা যেতে পারে।

Restore Using curl Command

আপনি যদি JSON ফাইল থেকে ব্যাকআপ পুনরুদ্ধার করতে চান, তবে curl ব্যবহার করে নিম্নলিখিত প্রক্রিয়া অনুসরণ করতে পারেন।

curl -X POST http://localhost:5984/my_database/_bulk_docs -H "Content-Type: application/json" -d @my_database_backup.json

এখানে:

  • localhost:5984: CouchDB সার্ভারের ঠিকানা।
  • my_database: পুনরুদ্ধার করা ডেটাবেসের নাম।
  • _bulk_docs: এটি ব্যাচ ইনসার্ট করার জন্য ব্যবহৃত CouchDB এন্ডপয়েন্ট।
  • my_database_backup.json: ব্যাকআপ ফাইল, যেটি JSON ফরম্যাটে থাকতে হবে।
Restore Using couchdb_restore

couchdb_restore একটি কনসোল টুল যা CouchDB ব্যাকআপ ফাইল থেকে ডেটাবেস পুনঃস্থাপন করতে ব্যবহৃত হয়। এর মাধ্যমে ব্যাকআপ করা .couch ফাইল থেকে ডেটাবেস পুনঃস্থাপন করা যায়।

Restore কমান্ড:

couchdb_restore /path/to/backup/my_database_backup.couch

এটি ডেটাবেস পুনরুদ্ধার করতে ব্যবহৃত হবে।


4. ব্যাকআপ রিকভারি কৌশলসমূহ

  • Point-in-Time Recovery (PITR): CouchDB এর PITR সুবিধার মাধ্যমে আপনি নির্দিষ্ট সময়ের ব্যাকআপ পুনরুদ্ধার করতে পারেন। আপনি এই ফিচারটি _changes feed বা continuous replication ব্যবহার করে ডেটাবেসে ডেটার পরিবর্তন ট্র্যাক করে পুনঃস্থাপন করতে পারেন।
  • Conflict Resolution: যদি ব্যাকআপে কনফ্লিক্ট থাকে, তাহলে CouchDB আপনাকে _rev ফিল্ডের মাধ্যমে কনফ্লিক্ট সমাধান করার সুযোগ দেয়।

উপসংহার

CouchDB তে ব্যাকআপ এবং রিকভারি অত্যন্ত গুরুত্বপূর্ণ এবং সহজে কনফিগার করা যায়। আপনি curl বা couchdb-dump ব্যবহার করে ব্যাকআপ নিতে পারেন, এবং cron job সেটআপ করে automated backups কনফিগার করতে পারেন। ব্যাকআপ পুনরুদ্ধার করার জন্য restore প্রক্রিয়া ব্যবহার করা হয় এবং conflict resolution নিশ্চিত করে ডেটার সঠিকতা বজায় রাখা যায়। CouchDB এর এই শক্তিশালী ব্যাকআপ ও রিকভারি প্রক্রিয়া ডেটার নিরাপত্তা এবং হাই এভেইলেবিলিটি নিশ্চিত করতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion